package com.chukun.multi.masterslave.reusable;

import java.util.concurrent.Future;

/**
 * slave参与者的实例
 * @param <T>
 * @param <V>
 */
public interface SlaveSpec<T,V> {

    /**
     * 用于Master向其一个子任务
     * @param task 子任务
     * @return
     * @throws InterruptedException
     */
    Future<V> submit(final T task) throws InterruptedException;

    /**
     * 初始化 slave 实例提供的服务
     */
    void init();

    /**
     * 停止 Slave 实例对外提供的服务
     */
    void shutdown();
}
